One or more aspects relate, in general, to processing within a computing environment, and in particular, to facilitating such processing.
In one example, processing within a computing environment includes communicating between multiple program modules of different classes executing within the computing environment. There are cases where procedure calls in a programming language are inefficient or impossible to use. For example, if module A is compiled with one calling convention and module B is compiled with a different calling convention, it is often the case that a call between module A and module B incurs a significant cost at runtime to adapt the one calling convention to the other calling convention. Another example is where module A is, for instance, a 64-bit module in that it uses 64-bit registers, addresses or address buses, and module B is not a 64-bit module. In many systems, these two modules may not interact at all.
In an effort to address the above, user-defined software structures have been employed. For instance, for the case in which modules are compiled with different calling conventions, an artificial set of calls across the calling convention boundary is constructed to minimize the number of calls, and thus, minimize the aggregate code. Further, for the cases in which different bit modules are to communicate, user-defined software structures are used to perform inter-process communication.